1. Field of the Invention
This invention is related to integrated circuit design and, more particularly, to testing the performance of controllers and communication fabrics in integrated circuits.
2. Description of the Related Art
Complex electronic systems include controllers (e.g. memory controllers, interface controllers, etc.) and numerous request sources that generate requests handled by the controllers. A communication fabric of some sort (e.g. busses, point to point connections, etc.) connects the request sources to the controller. Different request sources have different performance requirements and request patterns, and in a complex system it is not clear whether the performance requirements can be met by a given communication fabric or controller design.
Early in the design cycle of a system, designers will often model the system using high level programming languages such as C, C++, etc. These models execute fairly rapidly, and thus various use cases for the system can be explored. On the other hand, these models approximate the operation of the components of the system, and are not very accurate. Accordingly, some insight into the performance of the system can be gained, but it is difficult to pinpoint performance problems and design solutions to the performance problems.
Later in the design cycle, once the components of the system have actually been designed, simulation models can be generated from the cycle-accurate design descriptions (e.g. the hardware description language (HDL) descriptions). While these simulations are accurate, they are much slower and the ability to perform large-scale simulations for performance evaluation is limited. In some cases, an FPGA implementation of the design can be created for software development purposes, and the FPGA implementation is faster than the simulation. In either case, the accurate designs become available late in the design cycle, when it is more difficult and risky to perform design changes to address performance problems.